#include <stdio.h>

/*
	输入一组整数，求出这组数字子序列和中的最大值，
	只要求计算出最大子序列的和，不必求出最大值对应的序列。
	最大子序列和：整数序列 A1， A2，... An （可能有负数），
	求 A1 ~ An 的一个子序列 Ai ~ Aj，使得 Ai 到 Aj 的和最大。
	例如：序列 0, -3, 6, 8, -20, 21, 8, -9, 10, -1, 3, 6, 5，
	则最大子序列和为 43。
*/

int main()
{
	int n, i;
	printf("Enter the length of the sequence: ");
	scanf("%d", &n);
	int A[n];
	for (i = 0; i < n; i++)
	{
		printf("Enter number %d: ", i + 1);
		scanf("%d", &A[i]);
	}
	int sum = 0, max = 0;
	for (i = 0; i < n; i++)
	{
		sum += A[i];
		sum = sum < 0 ? 0 : sum;
		max = sum > max ? sum : max;
	}
	printf("result=%d\n", max);
	return 0;
}
